package com.ytjj.qmyx.mall.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ProductSelectExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProductSelectExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andProductLibraryIdIsNull() {
            addCriterion("product_library_id is null");
            return (Criteria) this;
        }

        public Criteria andProductLibraryIdIsNotNull() {
            addCriterion("product_library_id is not null");
            return (Criteria) this;
        }

        public Criteria andProductLibraryIdEqualTo(Integer value) {
            addCriterion("product_library_id =", value, "productLibraryId");
            return (Criteria) this;
        }

        public Criteria andProductLibraryIdNotEqualTo(Integer value) {
            addCriterion("product_library_id <>", value, "productLibraryId");
            return (Criteria) this;
        }

        public Criteria andProductLibraryIdGreaterThan(Integer value) {
            addCriterion("product_library_id >", value, "productLibraryId");
            return (Criteria) this;
        }

        public Criteria andProductLibraryIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_library_id >=", value, "productLibraryId");
            return (Criteria) this;
        }

        public Criteria andProductLibraryIdLessThan(Integer value) {
            addCriterion("product_library_id <", value, "productLibraryId");
            return (Criteria) this;
        }

        public Criteria andProductLibraryIdLessThanOrEqualTo(Integer value) {
            addCriterion("product_library_id <=", value, "productLibraryId");
            return (Criteria) this;
        }

        public Criteria andProductLibraryIdIn(List<Integer> values) {
            addCriterion("product_library_id in", values, "productLibraryId");
            return (Criteria) this;
        }

        public Criteria andProductLibraryIdNotIn(List<Integer> values) {
            addCriterion("product_library_id not in", values, "productLibraryId");
            return (Criteria) this;
        }

        public Criteria andProductLibraryIdBetween(Integer value1, Integer value2) {
            addCriterion("product_library_id between", value1, value2, "productLibraryId");
            return (Criteria) this;
        }

        public Criteria andProductLibraryIdNotBetween(Integer value1, Integer value2) {
            addCriterion("product_library_id not between", value1, value2, "productLibraryId");
            return (Criteria) this;
        }

        public Criteria andProductNoIsNull() {
            addCriterion("product_no is null");
            return (Criteria) this;
        }

        public Criteria andProductNoIsNotNull() {
            addCriterion("product_no is not null");
            return (Criteria) this;
        }

        public Criteria andProductNoEqualTo(String value) {
            addCriterion("product_no =", value, "productNo");
            return (Criteria) this;
        }

        public Criteria andProductNoNotEqualTo(String value) {
            addCriterion("product_no <>", value, "productNo");
            return (Criteria) this;
        }

        public Criteria andProductNoGreaterThan(String value) {
            addCriterion("product_no >", value, "productNo");
            return (Criteria) this;
        }

        public Criteria andProductNoGreaterThanOrEqualTo(String value) {
            addCriterion("product_no >=", value, "productNo");
            return (Criteria) this;
        }

        public Criteria andProductNoLessThan(String value) {
            addCriterion("product_no <", value, "productNo");
            return (Criteria) this;
        }

        public Criteria andProductNoLessThanOrEqualTo(String value) {
            addCriterion("product_no <=", value, "productNo");
            return (Criteria) this;
        }

        public Criteria andProductNoLike(String value) {
            addCriterion("product_no like", value, "productNo");
            return (Criteria) this;
        }

        public Criteria andProductNoNotLike(String value) {
            addCriterion("product_no not like", value, "productNo");
            return (Criteria) this;
        }

        public Criteria andProductNoIn(List<String> values) {
            addCriterion("product_no in", values, "productNo");
            return (Criteria) this;
        }

        public Criteria andProductNoNotIn(List<String> values) {
            addCriterion("product_no not in", values, "productNo");
            return (Criteria) this;
        }

        public Criteria andProductNoBetween(String value1, String value2) {
            addCriterion("product_no between", value1, value2, "productNo");
            return (Criteria) this;
        }

        public Criteria andProductNoNotBetween(String value1, String value2) {
            addCriterion("product_no not between", value1, value2, "productNo");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNull() {
            addCriterion("product_name is null");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNotNull() {
            addCriterion("product_name is not null");
            return (Criteria) this;
        }

        public Criteria andProductNameEqualTo(String value) {
            addCriterion("product_name =", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotEqualTo(String value) {
            addCriterion("product_name <>", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThan(String value) {
            addCriterion("product_name >", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThanOrEqualTo(String value) {
            addCriterion("product_name >=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThan(String value) {
            addCriterion("product_name <", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThanOrEqualTo(String value) {
            addCriterion("product_name <=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLike(String value) {
            addCriterion("product_name like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotLike(String value) {
            addCriterion("product_name not like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameIn(List<String> values) {
            addCriterion("product_name in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotIn(List<String> values) {
            addCriterion("product_name not in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameBetween(String value1, String value2) {
            addCriterion("product_name between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotBetween(String value1, String value2) {
            addCriterion("product_name not between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductImgIsNull() {
            addCriterion("product_img is null");
            return (Criteria) this;
        }

        public Criteria andProductImgIsNotNull() {
            addCriterion("product_img is not null");
            return (Criteria) this;
        }

        public Criteria andProductImgEqualTo(String value) {
            addCriterion("product_img =", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgNotEqualTo(String value) {
            addCriterion("product_img <>", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgGreaterThan(String value) {
            addCriterion("product_img >", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgGreaterThanOrEqualTo(String value) {
            addCriterion("product_img >=", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgLessThan(String value) {
            addCriterion("product_img <", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgLessThanOrEqualTo(String value) {
            addCriterion("product_img <=", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgLike(String value) {
            addCriterion("product_img like", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgNotLike(String value) {
            addCriterion("product_img not like", value, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgIn(List<String> values) {
            addCriterion("product_img in", values, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgNotIn(List<String> values) {
            addCriterion("product_img not in", values, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgBetween(String value1, String value2) {
            addCriterion("product_img between", value1, value2, "productImg");
            return (Criteria) this;
        }

        public Criteria andProductImgNotBetween(String value1, String value2) {
            addCriterion("product_img not between", value1, value2, "productImg");
            return (Criteria) this;
        }

        public Criteria andSceneImgIsNull() {
            addCriterion("scene_img is null");
            return (Criteria) this;
        }

        public Criteria andSceneImgIsNotNull() {
            addCriterion("scene_img is not null");
            return (Criteria) this;
        }

        public Criteria andSceneImgEqualTo(String value) {
            addCriterion("scene_img =", value, "sceneImg");
            return (Criteria) this;
        }

        public Criteria andSceneImgNotEqualTo(String value) {
            addCriterion("scene_img <>", value, "sceneImg");
            return (Criteria) this;
        }

        public Criteria andSceneImgGreaterThan(String value) {
            addCriterion("scene_img >", value, "sceneImg");
            return (Criteria) this;
        }

        public Criteria andSceneImgGreaterThanOrEqualTo(String value) {
            addCriterion("scene_img >=", value, "sceneImg");
            return (Criteria) this;
        }

        public Criteria andSceneImgLessThan(String value) {
            addCriterion("scene_img <", value, "sceneImg");
            return (Criteria) this;
        }

        public Criteria andSceneImgLessThanOrEqualTo(String value) {
            addCriterion("scene_img <=", value, "sceneImg");
            return (Criteria) this;
        }

        public Criteria andSceneImgLike(String value) {
            addCriterion("scene_img like", value, "sceneImg");
            return (Criteria) this;
        }

        public Criteria andSceneImgNotLike(String value) {
            addCriterion("scene_img not like", value, "sceneImg");
            return (Criteria) this;
        }

        public Criteria andSceneImgIn(List<String> values) {
            addCriterion("scene_img in", values, "sceneImg");
            return (Criteria) this;
        }

        public Criteria andSceneImgNotIn(List<String> values) {
            addCriterion("scene_img not in", values, "sceneImg");
            return (Criteria) this;
        }

        public Criteria andSceneImgBetween(String value1, String value2) {
            addCriterion("scene_img between", value1, value2, "sceneImg");
            return (Criteria) this;
        }

        public Criteria andSceneImgNotBetween(String value1, String value2) {
            addCriterion("scene_img not between", value1, value2, "sceneImg");
            return (Criteria) this;
        }

        public Criteria andShrinkImgIsNull() {
            addCriterion("shrink_img is null");
            return (Criteria) this;
        }

        public Criteria andShrinkImgIsNotNull() {
            addCriterion("shrink_img is not null");
            return (Criteria) this;
        }

        public Criteria andShrinkImgEqualTo(String value) {
            addCriterion("shrink_img =", value, "shrinkImg");
            return (Criteria) this;
        }

        public Criteria andShrinkImgNotEqualTo(String value) {
            addCriterion("shrink_img <>", value, "shrinkImg");
            return (Criteria) this;
        }

        public Criteria andShrinkImgGreaterThan(String value) {
            addCriterion("shrink_img >", value, "shrinkImg");
            return (Criteria) this;
        }

        public Criteria andShrinkImgGreaterThanOrEqualTo(String value) {
            addCriterion("shrink_img >=", value, "shrinkImg");
            return (Criteria) this;
        }

        public Criteria andShrinkImgLessThan(String value) {
            addCriterion("shrink_img <", value, "shrinkImg");
            return (Criteria) this;
        }

        public Criteria andShrinkImgLessThanOrEqualTo(String value) {
            addCriterion("shrink_img <=", value, "shrinkImg");
            return (Criteria) this;
        }

        public Criteria andShrinkImgLike(String value) {
            addCriterion("shrink_img like", value, "shrinkImg");
            return (Criteria) this;
        }

        public Criteria andShrinkImgNotLike(String value) {
            addCriterion("shrink_img not like", value, "shrinkImg");
            return (Criteria) this;
        }

        public Criteria andShrinkImgIn(List<String> values) {
            addCriterion("shrink_img in", values, "shrinkImg");
            return (Criteria) this;
        }

        public Criteria andShrinkImgNotIn(List<String> values) {
            addCriterion("shrink_img not in", values, "shrinkImg");
            return (Criteria) this;
        }

        public Criteria andShrinkImgBetween(String value1, String value2) {
            addCriterion("shrink_img between", value1, value2, "shrinkImg");
            return (Criteria) this;
        }

        public Criteria andShrinkImgNotBetween(String value1, String value2) {
            addCriterion("shrink_img not between", value1, value2, "shrinkImg");
            return (Criteria) this;
        }

        public Criteria andPriceIsNull() {
            addCriterion("price is null");
            return (Criteria) this;
        }

        public Criteria andPriceIsNotNull() {
            addCriterion("price is not null");
            return (Criteria) this;
        }

        public Criteria andPriceEqualTo(BigDecimal value) {
            addCriterion("price =", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotEqualTo(BigDecimal value) {
            addCriterion("price <>", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThan(BigDecimal value) {
            addCriterion("price >", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("price >=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThan(BigDecimal value) {
            addCriterion("price <", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("price <=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceIn(List<BigDecimal> values) {
            addCriterion("price in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotIn(List<BigDecimal> values) {
            addCriterion("price not in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("price between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("price not between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andDescrIsNull() {
            addCriterion("descr is null");
            return (Criteria) this;
        }

        public Criteria andDescrIsNotNull() {
            addCriterion("descr is not null");
            return (Criteria) this;
        }

        public Criteria andDescrEqualTo(String value) {
            addCriterion("descr =", value, "descr");
            return (Criteria) this;
        }

        public Criteria andDescrNotEqualTo(String value) {
            addCriterion("descr <>", value, "descr");
            return (Criteria) this;
        }

        public Criteria andDescrGreaterThan(String value) {
            addCriterion("descr >", value, "descr");
            return (Criteria) this;
        }

        public Criteria andDescrGreaterThanOrEqualTo(String value) {
            addCriterion("descr >=", value, "descr");
            return (Criteria) this;
        }

        public Criteria andDescrLessThan(String value) {
            addCriterion("descr <", value, "descr");
            return (Criteria) this;
        }

        public Criteria andDescrLessThanOrEqualTo(String value) {
            addCriterion("descr <=", value, "descr");
            return (Criteria) this;
        }

        public Criteria andDescrLike(String value) {
            addCriterion("descr like", value, "descr");
            return (Criteria) this;
        }

        public Criteria andDescrNotLike(String value) {
            addCriterion("descr not like", value, "descr");
            return (Criteria) this;
        }

        public Criteria andDescrIn(List<String> values) {
            addCriterion("descr in", values, "descr");
            return (Criteria) this;
        }

        public Criteria andDescrNotIn(List<String> values) {
            addCriterion("descr not in", values, "descr");
            return (Criteria) this;
        }

        public Criteria andDescrBetween(String value1, String value2) {
            addCriterion("descr between", value1, value2, "descr");
            return (Criteria) this;
        }

        public Criteria andDescrNotBetween(String value1, String value2) {
            addCriterion("descr not between", value1, value2, "descr");
            return (Criteria) this;
        }

        public Criteria andReceStatusIsNull() {
            addCriterion("rece_status is null");
            return (Criteria) this;
        }

        public Criteria andReceStatusIsNotNull() {
            addCriterion("rece_status is not null");
            return (Criteria) this;
        }

        public Criteria andReceStatusEqualTo(Byte value) {
            addCriterion("rece_status =", value, "receStatus");
            return (Criteria) this;
        }

        public Criteria andReceStatusNotEqualTo(Byte value) {
            addCriterion("rece_status <>", value, "receStatus");
            return (Criteria) this;
        }

        public Criteria andReceStatusGreaterThan(Byte value) {
            addCriterion("rece_status >", value, "receStatus");
            return (Criteria) this;
        }

        public Criteria andReceStatusGreaterThanOrEqualTo(Byte value) {
            addCriterion("rece_status >=", value, "receStatus");
            return (Criteria) this;
        }

        public Criteria andReceStatusLessThan(Byte value) {
            addCriterion("rece_status <", value, "receStatus");
            return (Criteria) this;
        }

        public Criteria andReceStatusLessThanOrEqualTo(Byte value) {
            addCriterion("rece_status <=", value, "receStatus");
            return (Criteria) this;
        }

        public Criteria andReceStatusIn(List<Byte> values) {
            addCriterion("rece_status in", values, "receStatus");
            return (Criteria) this;
        }

        public Criteria andReceStatusNotIn(List<Byte> values) {
            addCriterion("rece_status not in", values, "receStatus");
            return (Criteria) this;
        }

        public Criteria andReceStatusBetween(Byte value1, Byte value2) {
            addCriterion("rece_status between", value1, value2, "receStatus");
            return (Criteria) this;
        }

        public Criteria andReceStatusNotBetween(Byte value1, Byte value2) {
            addCriterion("rece_status not between", value1, value2, "receStatus");
            return (Criteria) this;
        }

        public Criteria andCompleteStatusIsNull() {
            addCriterion("complete_status is null");
            return (Criteria) this;
        }

        public Criteria andCompleteStatusIsNotNull() {
            addCriterion("complete_status is not null");
            return (Criteria) this;
        }

        public Criteria andCompleteStatusEqualTo(Byte value) {
            addCriterion("complete_status =", value, "completeStatus");
            return (Criteria) this;
        }

        public Criteria andCompleteStatusNotEqualTo(Byte value) {
            addCriterion("complete_status <>", value, "completeStatus");
            return (Criteria) this;
        }

        public Criteria andCompleteStatusGreaterThan(Byte value) {
            addCriterion("complete_status >", value, "completeStatus");
            return (Criteria) this;
        }

        public Criteria andCompleteStatusGreaterThanOrEqualTo(Byte value) {
            addCriterion("complete_status >=", value, "completeStatus");
            return (Criteria) this;
        }

        public Criteria andCompleteStatusLessThan(Byte value) {
            addCriterion("complete_status <", value, "completeStatus");
            return (Criteria) this;
        }

        public Criteria andCompleteStatusLessThanOrEqualTo(Byte value) {
            addCriterion("complete_status <=", value, "completeStatus");
            return (Criteria) this;
        }

        public Criteria andCompleteStatusIn(List<Byte> values) {
            addCriterion("complete_status in", values, "completeStatus");
            return (Criteria) this;
        }

        public Criteria andCompleteStatusNotIn(List<Byte> values) {
            addCriterion("complete_status not in", values, "completeStatus");
            return (Criteria) this;
        }

        public Criteria andCompleteStatusBetween(Byte value1, Byte value2) {
            addCriterion("complete_status between", value1, value2, "completeStatus");
            return (Criteria) this;
        }

        public Criteria andCompleteStatusNotBetween(Byte value1, Byte value2) {
            addCriterion("complete_status not between", value1, value2, "completeStatus");
            return (Criteria) this;
        }

        public Criteria andSortIsNull() {
            addCriterion("sort is null");
            return (Criteria) this;
        }

        public Criteria andSortIsNotNull() {
            addCriterion("sort is not null");
            return (Criteria) this;
        }

        public Criteria andSortEqualTo(Integer value) {
            addCriterion("sort =", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotEqualTo(Integer value) {
            addCriterion("sort <>", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortGreaterThan(Integer value) {
            addCriterion("sort >", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortGreaterThanOrEqualTo(Integer value) {
            addCriterion("sort >=", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortLessThan(Integer value) {
            addCriterion("sort <", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortLessThanOrEqualTo(Integer value) {
            addCriterion("sort <=", value, "sort");
            return (Criteria) this;
        }

        public Criteria andSortIn(List<Integer> values) {
            addCriterion("sort in", values, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotIn(List<Integer> values) {
            addCriterion("sort not in", values, "sort");
            return (Criteria) this;
        }

        public Criteria andSortBetween(Integer value1, Integer value2) {
            addCriterion("sort between", value1, value2, "sort");
            return (Criteria) this;
        }

        public Criteria andSortNotBetween(Integer value1, Integer value2) {
            addCriterion("sort not between", value1, value2, "sort");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceIsNull() {
            addCriterion("original_price is null");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceIsNotNull() {
            addCriterion("original_price is not null");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceEqualTo(BigDecimal value) {
            addCriterion("original_price =", value, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceNotEqualTo(BigDecimal value) {
            addCriterion("original_price <>", value, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceGreaterThan(BigDecimal value) {
            addCriterion("original_price >", value, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("original_price >=", value, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceLessThan(BigDecimal value) {
            addCriterion("original_price <", value, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("original_price <=", value, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceIn(List<BigDecimal> values) {
            addCriterion("original_price in", values, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceNotIn(List<BigDecimal> values) {
            addCriterion("original_price not in", values, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("original_price between", value1, value2, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andOriginalPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("original_price not between", value1, value2, "originalPrice");
            return (Criteria) this;
        }

        public Criteria andCurPriceIsNull() {
            addCriterion("cur_price is null");
            return (Criteria) this;
        }

        public Criteria andCurPriceIsNotNull() {
            addCriterion("cur_price is not null");
            return (Criteria) this;
        }

        public Criteria andCurPriceEqualTo(BigDecimal value) {
            addCriterion("cur_price =", value, "curPrice");
            return (Criteria) this;
        }

        public Criteria andCurPriceNotEqualTo(BigDecimal value) {
            addCriterion("cur_price <>", value, "curPrice");
            return (Criteria) this;
        }

        public Criteria andCurPriceGreaterThan(BigDecimal value) {
            addCriterion("cur_price >", value, "curPrice");
            return (Criteria) this;
        }

        public Criteria andCurPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("cur_price >=", value, "curPrice");
            return (Criteria) this;
        }

        public Criteria andCurPriceLessThan(BigDecimal value) {
            addCriterion("cur_price <", value, "curPrice");
            return (Criteria) this;
        }

        public Criteria andCurPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("cur_price <=", value, "curPrice");
            return (Criteria) this;
        }

        public Criteria andCurPriceIn(List<BigDecimal> values) {
            addCriterion("cur_price in", values, "curPrice");
            return (Criteria) this;
        }

        public Criteria andCurPriceNotIn(List<BigDecimal> values) {
            addCriterion("cur_price not in", values, "curPrice");
            return (Criteria) this;
        }

        public Criteria andCurPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("cur_price between", value1, value2, "curPrice");
            return (Criteria) this;
        }

        public Criteria andCurPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("cur_price not between", value1, value2, "curPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceIsNull() {
            addCriterion("cost_price is null");
            return (Criteria) this;
        }

        public Criteria andCostPriceIsNotNull() {
            addCriterion("cost_price is not null");
            return (Criteria) this;
        }

        public Criteria andCostPriceEqualTo(BigDecimal value) {
            addCriterion("cost_price =", value, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceNotEqualTo(BigDecimal value) {
            addCriterion("cost_price <>", value, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceGreaterThan(BigDecimal value) {
            addCriterion("cost_price >", value, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("cost_price >=", value, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceLessThan(BigDecimal value) {
            addCriterion("cost_price <", value, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("cost_price <=", value, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceIn(List<BigDecimal> values) {
            addCriterion("cost_price in", values, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceNotIn(List<BigDecimal> values) {
            addCriterion("cost_price not in", values, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("cost_price between", value1, value2, "costPrice");
            return (Criteria) this;
        }

        public Criteria andCostPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("cost_price not between", value1, value2, "costPrice");
            return (Criteria) this;
        }

        public Criteria andStockIsNull() {
            addCriterion("stock is null");
            return (Criteria) this;
        }

        public Criteria andStockIsNotNull() {
            addCriterion("stock is not null");
            return (Criteria) this;
        }

        public Criteria andStockEqualTo(Integer value) {
            addCriterion("stock =", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotEqualTo(Integer value) {
            addCriterion("stock <>", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockGreaterThan(Integer value) {
            addCriterion("stock >", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockGreaterThanOrEqualTo(Integer value) {
            addCriterion("stock >=", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockLessThan(Integer value) {
            addCriterion("stock <", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockLessThanOrEqualTo(Integer value) {
            addCriterion("stock <=", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockIn(List<Integer> values) {
            addCriterion("stock in", values, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotIn(List<Integer> values) {
            addCriterion("stock not in", values, "stock");
            return (Criteria) this;
        }

        public Criteria andStockBetween(Integer value1, Integer value2) {
            addCriterion("stock between", value1, value2, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotBetween(Integer value1, Integer value2) {
            addCriterion("stock not between", value1, value2, "stock");
            return (Criteria) this;
        }

        public Criteria andGoodRatioIsNull() {
            addCriterion("good_ratio is null");
            return (Criteria) this;
        }

        public Criteria andGoodRatioIsNotNull() {
            addCriterion("good_ratio is not null");
            return (Criteria) this;
        }

        public Criteria andGoodRatioEqualTo(Integer value) {
            addCriterion("good_ratio =", value, "goodRatio");
            return (Criteria) this;
        }

        public Criteria andGoodRatioNotEqualTo(Integer value) {
            addCriterion("good_ratio <>", value, "goodRatio");
            return (Criteria) this;
        }

        public Criteria andGoodRatioGreaterThan(Integer value) {
            addCriterion("good_ratio >", value, "goodRatio");
            return (Criteria) this;
        }

        public Criteria andGoodRatioGreaterThanOrEqualTo(Integer value) {
            addCriterion("good_ratio >=", value, "goodRatio");
            return (Criteria) this;
        }

        public Criteria andGoodRatioLessThan(Integer value) {
            addCriterion("good_ratio <", value, "goodRatio");
            return (Criteria) this;
        }

        public Criteria andGoodRatioLessThanOrEqualTo(Integer value) {
            addCriterion("good_ratio <=", value, "goodRatio");
            return (Criteria) this;
        }

        public Criteria andGoodRatioIn(List<Integer> values) {
            addCriterion("good_ratio in", values, "goodRatio");
            return (Criteria) this;
        }

        public Criteria andGoodRatioNotIn(List<Integer> values) {
            addCriterion("good_ratio not in", values, "goodRatio");
            return (Criteria) this;
        }

        public Criteria andGoodRatioBetween(Integer value1, Integer value2) {
            addCriterion("good_ratio between", value1, value2, "goodRatio");
            return (Criteria) this;
        }

        public Criteria andGoodRatioNotBetween(Integer value1, Integer value2) {
            addCriterion("good_ratio not between", value1, value2, "goodRatio");
            return (Criteria) this;
        }

        public Criteria andWarehouseIsNull() {
            addCriterion("warehouse is null");
            return (Criteria) this;
        }

        public Criteria andWarehouseIsNotNull() {
            addCriterion("warehouse is not null");
            return (Criteria) this;
        }

        public Criteria andWarehouseEqualTo(String value) {
            addCriterion("warehouse =", value, "warehouse");
            return (Criteria) this;
        }

        public Criteria andWarehouseNotEqualTo(String value) {
            addCriterion("warehouse <>", value, "warehouse");
            return (Criteria) this;
        }

        public Criteria andWarehouseGreaterThan(String value) {
            addCriterion("warehouse >", value, "warehouse");
            return (Criteria) this;
        }

        public Criteria andWarehouseGreaterThanOrEqualTo(String value) {
            addCriterion("warehouse >=", value, "warehouse");
            return (Criteria) this;
        }

        public Criteria andWarehouseLessThan(String value) {
            addCriterion("warehouse <", value, "warehouse");
            return (Criteria) this;
        }

        public Criteria andWarehouseLessThanOrEqualTo(String value) {
            addCriterion("warehouse <=", value, "warehouse");
            return (Criteria) this;
        }

        public Criteria andWarehouseLike(String value) {
            addCriterion("warehouse like", value, "warehouse");
            return (Criteria) this;
        }

        public Criteria andWarehouseNotLike(String value) {
            addCriterion("warehouse not like", value, "warehouse");
            return (Criteria) this;
        }

        public Criteria andWarehouseIn(List<String> values) {
            addCriterion("warehouse in", values, "warehouse");
            return (Criteria) this;
        }

        public Criteria andWarehouseNotIn(List<String> values) {
            addCriterion("warehouse not in", values, "warehouse");
            return (Criteria) this;
        }

        public Criteria andWarehouseBetween(String value1, String value2) {
            addCriterion("warehouse between", value1, value2, "warehouse");
            return (Criteria) this;
        }

        public Criteria andWarehouseNotBetween(String value1, String value2) {
            addCriterion("warehouse not between", value1, value2, "warehouse");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameIsNull() {
            addCriterion("warehouse_name is null");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameIsNotNull() {
            addCriterion("warehouse_name is not null");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameEqualTo(String value) {
            addCriterion("warehouse_name =", value, "warehouseName");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameNotEqualTo(String value) {
            addCriterion("warehouse_name <>", value, "warehouseName");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameGreaterThan(String value) {
            addCriterion("warehouse_name >", value, "warehouseName");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameGreaterThanOrEqualTo(String value) {
            addCriterion("warehouse_name >=", value, "warehouseName");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameLessThan(String value) {
            addCriterion("warehouse_name <", value, "warehouseName");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameLessThanOrEqualTo(String value) {
            addCriterion("warehouse_name <=", value, "warehouseName");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameLike(String value) {
            addCriterion("warehouse_name like", value, "warehouseName");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameNotLike(String value) {
            addCriterion("warehouse_name not like", value, "warehouseName");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameIn(List<String> values) {
            addCriterion("warehouse_name in", values, "warehouseName");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameNotIn(List<String> values) {
            addCriterion("warehouse_name not in", values, "warehouseName");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameBetween(String value1, String value2) {
            addCriterion("warehouse_name between", value1, value2, "warehouseName");
            return (Criteria) this;
        }

        public Criteria andWarehouseNameNotBetween(String value1, String value2) {
            addCriterion("warehouse_name not between", value1, value2, "warehouseName");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleIsNull() {
            addCriterion("warehouse_rule is null");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleIsNotNull() {
            addCriterion("warehouse_rule is not null");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleEqualTo(String value) {
            addCriterion("warehouse_rule =", value, "warehouseRule");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleNotEqualTo(String value) {
            addCriterion("warehouse_rule <>", value, "warehouseRule");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleGreaterThan(String value) {
            addCriterion("warehouse_rule >", value, "warehouseRule");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleGreaterThanOrEqualTo(String value) {
            addCriterion("warehouse_rule >=", value, "warehouseRule");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleLessThan(String value) {
            addCriterion("warehouse_rule <", value, "warehouseRule");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleLessThanOrEqualTo(String value) {
            addCriterion("warehouse_rule <=", value, "warehouseRule");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleLike(String value) {
            addCriterion("warehouse_rule like", value, "warehouseRule");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleNotLike(String value) {
            addCriterion("warehouse_rule not like", value, "warehouseRule");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleIn(List<String> values) {
            addCriterion("warehouse_rule in", values, "warehouseRule");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleNotIn(List<String> values) {
            addCriterion("warehouse_rule not in", values, "warehouseRule");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleBetween(String value1, String value2) {
            addCriterion("warehouse_rule between", value1, value2, "warehouseRule");
            return (Criteria) this;
        }

        public Criteria andWarehouseRuleNotBetween(String value1, String value2) {
            addCriterion("warehouse_rule not between", value1, value2, "warehouseRule");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIsNull() {
            addCriterion("category_id is null");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIsNotNull() {
            addCriterion("category_id is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryIdEqualTo(Integer value) {
            addCriterion("category_id =", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotEqualTo(Integer value) {
            addCriterion("category_id <>", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdGreaterThan(Integer value) {
            addCriterion("category_id >", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("category_id >=", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLessThan(Integer value) {
            addCriterion("category_id <", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLessThanOrEqualTo(Integer value) {
            addCriterion("category_id <=", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIn(List<Integer> values) {
            addCriterion("category_id in", values, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotIn(List<Integer> values) {
            addCriterion("category_id not in", values, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdBetween(Integer value1, Integer value2) {
            addCriterion("category_id between", value1, value2, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotBetween(Integer value1, Integer value2) {
            addCriterion("category_id not between", value1, value2, "categoryId");
            return (Criteria) this;
        }

        public Criteria andVolumeStrIsNull() {
            addCriterion("volume_str is null");
            return (Criteria) this;
        }

        public Criteria andVolumeStrIsNotNull() {
            addCriterion("volume_str is not null");
            return (Criteria) this;
        }

        public Criteria andVolumeStrEqualTo(String value) {
            addCriterion("volume_str =", value, "volumeStr");
            return (Criteria) this;
        }

        public Criteria andVolumeStrNotEqualTo(String value) {
            addCriterion("volume_str <>", value, "volumeStr");
            return (Criteria) this;
        }

        public Criteria andVolumeStrGreaterThan(String value) {
            addCriterion("volume_str >", value, "volumeStr");
            return (Criteria) this;
        }

        public Criteria andVolumeStrGreaterThanOrEqualTo(String value) {
            addCriterion("volume_str >=", value, "volumeStr");
            return (Criteria) this;
        }

        public Criteria andVolumeStrLessThan(String value) {
            addCriterion("volume_str <", value, "volumeStr");
            return (Criteria) this;
        }

        public Criteria andVolumeStrLessThanOrEqualTo(String value) {
            addCriterion("volume_str <=", value, "volumeStr");
            return (Criteria) this;
        }

        public Criteria andVolumeStrLike(String value) {
            addCriterion("volume_str like", value, "volumeStr");
            return (Criteria) this;
        }

        public Criteria andVolumeStrNotLike(String value) {
            addCriterion("volume_str not like", value, "volumeStr");
            return (Criteria) this;
        }

        public Criteria andVolumeStrIn(List<String> values) {
            addCriterion("volume_str in", values, "volumeStr");
            return (Criteria) this;
        }

        public Criteria andVolumeStrNotIn(List<String> values) {
            addCriterion("volume_str not in", values, "volumeStr");
            return (Criteria) this;
        }

        public Criteria andVolumeStrBetween(String value1, String value2) {
            addCriterion("volume_str between", value1, value2, "volumeStr");
            return (Criteria) this;
        }

        public Criteria andVolumeStrNotBetween(String value1, String value2) {
            addCriterion("volume_str not between", value1, value2, "volumeStr");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andSelectStatusIsNull() {
            addCriterion("select_status is null");
            return (Criteria) this;
        }

        public Criteria andSelectStatusIsNotNull() {
            addCriterion("select_status is not null");
            return (Criteria) this;
        }

        public Criteria andSelectStatusEqualTo(Integer value) {
            addCriterion("select_status =", value, "selectStatus");
            return (Criteria) this;
        }

        public Criteria andSelectStatusNotEqualTo(Integer value) {
            addCriterion("select_status <>", value, "selectStatus");
            return (Criteria) this;
        }

        public Criteria andSelectStatusGreaterThan(Integer value) {
            addCriterion("select_status >", value, "selectStatus");
            return (Criteria) this;
        }

        public Criteria andSelectStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("select_status >=", value, "selectStatus");
            return (Criteria) this;
        }

        public Criteria andSelectStatusLessThan(Integer value) {
            addCriterion("select_status <", value, "selectStatus");
            return (Criteria) this;
        }

        public Criteria andSelectStatusLessThanOrEqualTo(Integer value) {
            addCriterion("select_status <=", value, "selectStatus");
            return (Criteria) this;
        }

        public Criteria andSelectStatusIn(List<Integer> values) {
            addCriterion("select_status in", values, "selectStatus");
            return (Criteria) this;
        }

        public Criteria andSelectStatusNotIn(List<Integer> values) {
            addCriterion("select_status not in", values, "selectStatus");
            return (Criteria) this;
        }

        public Criteria andSelectStatusBetween(Integer value1, Integer value2) {
            addCriterion("select_status between", value1, value2, "selectStatus");
            return (Criteria) this;
        }

        public Criteria andSelectStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("select_status not between", value1, value2, "selectStatus");
            return (Criteria) this;
        }

        public Criteria andBankerIdIsNull() {
            addCriterion("banker_id is null");
            return (Criteria) this;
        }

        public Criteria andBankerIdIsNotNull() {
            addCriterion("banker_id is not null");
            return (Criteria) this;
        }

        public Criteria andBankerIdEqualTo(Integer value) {
            addCriterion("banker_id =", value, "bankerId");
            return (Criteria) this;
        }

        public Criteria andBankerIdNotEqualTo(Integer value) {
            addCriterion("banker_id <>", value, "bankerId");
            return (Criteria) this;
        }

        public Criteria andBankerIdGreaterThan(Integer value) {
            addCriterion("banker_id >", value, "bankerId");
            return (Criteria) this;
        }

        public Criteria andBankerIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("banker_id >=", value, "bankerId");
            return (Criteria) this;
        }

        public Criteria andBankerIdLessThan(Integer value) {
            addCriterion("banker_id <", value, "bankerId");
            return (Criteria) this;
        }

        public Criteria andBankerIdLessThanOrEqualTo(Integer value) {
            addCriterion("banker_id <=", value, "bankerId");
            return (Criteria) this;
        }

        public Criteria andBankerIdIn(List<Integer> values) {
            addCriterion("banker_id in", values, "bankerId");
            return (Criteria) this;
        }

        public Criteria andBankerIdNotIn(List<Integer> values) {
            addCriterion("banker_id not in", values, "bankerId");
            return (Criteria) this;
        }

        public Criteria andBankerIdBetween(Integer value1, Integer value2) {
            addCriterion("banker_id between", value1, value2, "bankerId");
            return (Criteria) this;
        }

        public Criteria andBankerIdNotBetween(Integer value1, Integer value2) {
            addCriterion("banker_id not between", value1, value2, "bankerId");
            return (Criteria) this;
        }

        public Criteria andRateIsNull() {
            addCriterion("rate is null");
            return (Criteria) this;
        }

        public Criteria andRateIsNotNull() {
            addCriterion("rate is not null");
            return (Criteria) this;
        }

        public Criteria andRateEqualTo(BigDecimal value) {
            addCriterion("rate =", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateNotEqualTo(BigDecimal value) {
            addCriterion("rate <>", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateGreaterThan(BigDecimal value) {
            addCriterion("rate >", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("rate >=", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateLessThan(BigDecimal value) {
            addCriterion("rate <", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateLessThanOrEqualTo(BigDecimal value) {
            addCriterion("rate <=", value, "rate");
            return (Criteria) this;
        }

        public Criteria andRateIn(List<BigDecimal> values) {
            addCriterion("rate in", values, "rate");
            return (Criteria) this;
        }

        public Criteria andRateNotIn(List<BigDecimal> values) {
            addCriterion("rate not in", values, "rate");
            return (Criteria) this;
        }

        public Criteria andRateBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("rate between", value1, value2, "rate");
            return (Criteria) this;
        }

        public Criteria andRateNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("rate not between", value1, value2, "rate");
            return (Criteria) this;
        }

        public Criteria andHomeFlagIsNull() {
            addCriterion("home_flag is null");
            return (Criteria) this;
        }

        public Criteria andHomeFlagIsNotNull() {
            addCriterion("home_flag is not null");
            return (Criteria) this;
        }

        public Criteria andHomeFlagEqualTo(Integer value) {
            addCriterion("home_flag =", value, "homeFlag");
            return (Criteria) this;
        }

        public Criteria andHomeFlagNotEqualTo(Integer value) {
            addCriterion("home_flag <>", value, "homeFlag");
            return (Criteria) this;
        }

        public Criteria andHomeFlagGreaterThan(Integer value) {
            addCriterion("home_flag >", value, "homeFlag");
            return (Criteria) this;
        }

        public Criteria andHomeFlagGreaterThanOrEqualTo(Integer value) {
            addCriterion("home_flag >=", value, "homeFlag");
            return (Criteria) this;
        }

        public Criteria andHomeFlagLessThan(Integer value) {
            addCriterion("home_flag <", value, "homeFlag");
            return (Criteria) this;
        }

        public Criteria andHomeFlagLessThanOrEqualTo(Integer value) {
            addCriterion("home_flag <=", value, "homeFlag");
            return (Criteria) this;
        }

        public Criteria andHomeFlagIn(List<Integer> values) {
            addCriterion("home_flag in", values, "homeFlag");
            return (Criteria) this;
        }

        public Criteria andHomeFlagNotIn(List<Integer> values) {
            addCriterion("home_flag not in", values, "homeFlag");
            return (Criteria) this;
        }

        public Criteria andHomeFlagBetween(Integer value1, Integer value2) {
            addCriterion("home_flag between", value1, value2, "homeFlag");
            return (Criteria) this;
        }

        public Criteria andHomeFlagNotBetween(Integer value1, Integer value2) {
            addCriterion("home_flag not between", value1, value2, "homeFlag");
            return (Criteria) this;
        }

        public Criteria andRecommendDocIsNull() {
            addCriterion("recommend_doc is null");
            return (Criteria) this;
        }

        public Criteria andRecommendDocIsNotNull() {
            addCriterion("recommend_doc is not null");
            return (Criteria) this;
        }

        public Criteria andRecommendDocEqualTo(String value) {
            addCriterion("recommend_doc =", value, "recommendDoc");
            return (Criteria) this;
        }

        public Criteria andRecommendDocNotEqualTo(String value) {
            addCriterion("recommend_doc <>", value, "recommendDoc");
            return (Criteria) this;
        }

        public Criteria andRecommendDocGreaterThan(String value) {
            addCriterion("recommend_doc >", value, "recommendDoc");
            return (Criteria) this;
        }

        public Criteria andRecommendDocGreaterThanOrEqualTo(String value) {
            addCriterion("recommend_doc >=", value, "recommendDoc");
            return (Criteria) this;
        }

        public Criteria andRecommendDocLessThan(String value) {
            addCriterion("recommend_doc <", value, "recommendDoc");
            return (Criteria) this;
        }

        public Criteria andRecommendDocLessThanOrEqualTo(String value) {
            addCriterion("recommend_doc <=", value, "recommendDoc");
            return (Criteria) this;
        }

        public Criteria andRecommendDocLike(String value) {
            addCriterion("recommend_doc like", value, "recommendDoc");
            return (Criteria) this;
        }

        public Criteria andRecommendDocNotLike(String value) {
            addCriterion("recommend_doc not like", value, "recommendDoc");
            return (Criteria) this;
        }

        public Criteria andRecommendDocIn(List<String> values) {
            addCriterion("recommend_doc in", values, "recommendDoc");
            return (Criteria) this;
        }

        public Criteria andRecommendDocNotIn(List<String> values) {
            addCriterion("recommend_doc not in", values, "recommendDoc");
            return (Criteria) this;
        }

        public Criteria andRecommendDocBetween(String value1, String value2) {
            addCriterion("recommend_doc between", value1, value2, "recommendDoc");
            return (Criteria) this;
        }

        public Criteria andRecommendDocNotBetween(String value1, String value2) {
            addCriterion("recommend_doc not between", value1, value2, "recommendDoc");
            return (Criteria) this;
        }

        public Criteria andRecImgFlagIsNull() {
            addCriterion("rec_img_flag is null");
            return (Criteria) this;
        }

        public Criteria andRecImgFlagIsNotNull() {
            addCriterion("rec_img_flag is not null");
            return (Criteria) this;
        }

        public Criteria andRecImgFlagEqualTo(Integer value) {
            addCriterion("rec_img_flag =", value, "recImgFlag");
            return (Criteria) this;
        }

        public Criteria andRecImgFlagNotEqualTo(Integer value) {
            addCriterion("rec_img_flag <>", value, "recImgFlag");
            return (Criteria) this;
        }

        public Criteria andRecImgFlagGreaterThan(Integer value) {
            addCriterion("rec_img_flag >", value, "recImgFlag");
            return (Criteria) this;
        }

        public Criteria andRecImgFlagGreaterThanOrEqualTo(Integer value) {
            addCriterion("rec_img_flag >=", value, "recImgFlag");
            return (Criteria) this;
        }

        public Criteria andRecImgFlagLessThan(Integer value) {
            addCriterion("rec_img_flag <", value, "recImgFlag");
            return (Criteria) this;
        }

        public Criteria andRecImgFlagLessThanOrEqualTo(Integer value) {
            addCriterion("rec_img_flag <=", value, "recImgFlag");
            return (Criteria) this;
        }

        public Criteria andRecImgFlagIn(List<Integer> values) {
            addCriterion("rec_img_flag in", values, "recImgFlag");
            return (Criteria) this;
        }

        public Criteria andRecImgFlagNotIn(List<Integer> values) {
            addCriterion("rec_img_flag not in", values, "recImgFlag");
            return (Criteria) this;
        }

        public Criteria andRecImgFlagBetween(Integer value1, Integer value2) {
            addCriterion("rec_img_flag between", value1, value2, "recImgFlag");
            return (Criteria) this;
        }

        public Criteria andRecImgFlagNotBetween(Integer value1, Integer value2) {
            addCriterion("rec_img_flag not between", value1, value2, "recImgFlag");
            return (Criteria) this;
        }

        public Criteria andRecDescrIsNull() {
            addCriterion("rec_descr is null");
            return (Criteria) this;
        }

        public Criteria andRecDescrIsNotNull() {
            addCriterion("rec_descr is not null");
            return (Criteria) this;
        }

        public Criteria andRecDescrEqualTo(String value) {
            addCriterion("rec_descr =", value, "recDescr");
            return (Criteria) this;
        }

        public Criteria andRecDescrNotEqualTo(String value) {
            addCriterion("rec_descr <>", value, "recDescr");
            return (Criteria) this;
        }

        public Criteria andRecDescrGreaterThan(String value) {
            addCriterion("rec_descr >", value, "recDescr");
            return (Criteria) this;
        }

        public Criteria andRecDescrGreaterThanOrEqualTo(String value) {
            addCriterion("rec_descr >=", value, "recDescr");
            return (Criteria) this;
        }

        public Criteria andRecDescrLessThan(String value) {
            addCriterion("rec_descr <", value, "recDescr");
            return (Criteria) this;
        }

        public Criteria andRecDescrLessThanOrEqualTo(String value) {
            addCriterion("rec_descr <=", value, "recDescr");
            return (Criteria) this;
        }

        public Criteria andRecDescrLike(String value) {
            addCriterion("rec_descr like", value, "recDescr");
            return (Criteria) this;
        }

        public Criteria andRecDescrNotLike(String value) {
            addCriterion("rec_descr not like", value, "recDescr");
            return (Criteria) this;
        }

        public Criteria andRecDescrIn(List<String> values) {
            addCriterion("rec_descr in", values, "recDescr");
            return (Criteria) this;
        }

        public Criteria andRecDescrNotIn(List<String> values) {
            addCriterion("rec_descr not in", values, "recDescr");
            return (Criteria) this;
        }

        public Criteria andRecDescrBetween(String value1, String value2) {
            addCriterion("rec_descr between", value1, value2, "recDescr");
            return (Criteria) this;
        }

        public Criteria andRecDescrNotBetween(String value1, String value2) {
            addCriterion("rec_descr not between", value1, value2, "recDescr");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Integer value) {
            addCriterion("user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Integer value) {
            addCriterion("user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Integer value) {
            addCriterion("user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Integer value) {
            addCriterion("user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Integer value) {
            addCriterion("user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Integer> values) {
            addCriterion("user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Integer> values) {
            addCriterion("user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Integer value1, Integer value2) {
            addCriterion("user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Integer value1, Integer value2) {
            addCriterion("user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserNameIsNull() {
            addCriterion("user_name is null");
            return (Criteria) this;
        }

        public Criteria andUserNameIsNotNull() {
            addCriterion("user_name is not null");
            return (Criteria) this;
        }

        public Criteria andUserNameEqualTo(String value) {
            addCriterion("user_name =", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameNotEqualTo(String value) {
            addCriterion("user_name <>", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameGreaterThan(String value) {
            addCriterion("user_name >", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("user_name >=", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameLessThan(String value) {
            addCriterion("user_name <", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameLessThanOrEqualTo(String value) {
            addCriterion("user_name <=", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameLike(String value) {
            addCriterion("user_name like", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameNotLike(String value) {
            addCriterion("user_name not like", value, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameIn(List<String> values) {
            addCriterion("user_name in", values, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameNotIn(List<String> values) {
            addCriterion("user_name not in", values, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameBetween(String value1, String value2) {
            addCriterion("user_name between", value1, value2, "userName");
            return (Criteria) this;
        }

        public Criteria andUserNameNotBetween(String value1, String value2) {
            addCriterion("user_name not between", value1, value2, "userName");
            return (Criteria) this;
        }

        public Criteria andTaskOpenTimeIsNull() {
            addCriterion("task_open_time is null");
            return (Criteria) this;
        }

        public Criteria andTaskOpenTimeIsNotNull() {
            addCriterion("task_open_time is not null");
            return (Criteria) this;
        }

        public Criteria andTaskOpenTimeEqualTo(Date value) {
            addCriterion("task_open_time =", value, "taskOpenTime");
            return (Criteria) this;
        }

        public Criteria andTaskOpenTimeNotEqualTo(Date value) {
            addCriterion("task_open_time <>", value, "taskOpenTime");
            return (Criteria) this;
        }

        public Criteria andTaskOpenTimeGreaterThan(Date value) {
            addCriterion("task_open_time >", value, "taskOpenTime");
            return (Criteria) this;
        }

        public Criteria andTaskOpenTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("task_open_time >=", value, "taskOpenTime");
            return (Criteria) this;
        }

        public Criteria andTaskOpenTimeLessThan(Date value) {
            addCriterion("task_open_time <", value, "taskOpenTime");
            return (Criteria) this;
        }

        public Criteria andTaskOpenTimeLessThanOrEqualTo(Date value) {
            addCriterion("task_open_time <=", value, "taskOpenTime");
            return (Criteria) this;
        }

        public Criteria andTaskOpenTimeIn(List<Date> values) {
            addCriterion("task_open_time in", values, "taskOpenTime");
            return (Criteria) this;
        }

        public Criteria andTaskOpenTimeNotIn(List<Date> values) {
            addCriterion("task_open_time not in", values, "taskOpenTime");
            return (Criteria) this;
        }

        public Criteria andTaskOpenTimeBetween(Date value1, Date value2) {
            addCriterion("task_open_time between", value1, value2, "taskOpenTime");
            return (Criteria) this;
        }

        public Criteria andTaskOpenTimeNotBetween(Date value1, Date value2) {
            addCriterion("task_open_time not between", value1, value2, "taskOpenTime");
            return (Criteria) this;
        }

        public Criteria andTaskCloseTimeIsNull() {
            addCriterion("task_close_time is null");
            return (Criteria) this;
        }

        public Criteria andTaskCloseTimeIsNotNull() {
            addCriterion("task_close_time is not null");
            return (Criteria) this;
        }

        public Criteria andTaskCloseTimeEqualTo(Date value) {
            addCriterion("task_close_time =", value, "taskCloseTime");
            return (Criteria) this;
        }

        public Criteria andTaskCloseTimeNotEqualTo(Date value) {
            addCriterion("task_close_time <>", value, "taskCloseTime");
            return (Criteria) this;
        }

        public Criteria andTaskCloseTimeGreaterThan(Date value) {
            addCriterion("task_close_time >", value, "taskCloseTime");
            return (Criteria) this;
        }

        public Criteria andTaskCloseTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("task_close_time >=", value, "taskCloseTime");
            return (Criteria) this;
        }

        public Criteria andTaskCloseTimeLessThan(Date value) {
            addCriterion("task_close_time <", value, "taskCloseTime");
            return (Criteria) this;
        }

        public Criteria andTaskCloseTimeLessThanOrEqualTo(Date value) {
            addCriterion("task_close_time <=", value, "taskCloseTime");
            return (Criteria) this;
        }

        public Criteria andTaskCloseTimeIn(List<Date> values) {
            addCriterion("task_close_time in", values, "taskCloseTime");
            return (Criteria) this;
        }

        public Criteria andTaskCloseTimeNotIn(List<Date> values) {
            addCriterion("task_close_time not in", values, "taskCloseTime");
            return (Criteria) this;
        }

        public Criteria andTaskCloseTimeBetween(Date value1, Date value2) {
            addCriterion("task_close_time between", value1, value2, "taskCloseTime");
            return (Criteria) this;
        }

        public Criteria andTaskCloseTimeNotBetween(Date value1, Date value2) {
            addCriterion("task_close_time not between", value1, value2, "taskCloseTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}